package com.zpp;


import lombok.extern.slf4j.Slf4j;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * 这是一个测试练习Map的类
 *
 * @ClassName: MapTest
 * @Author:zengpengpeng
 * @Date 2022/2/17
 */
@Slf4j
public class MapTest {
    /**
     * main方法
     *
     * @param args
     */
    public static void main(String[] args) {
        //创建一个map
        Map<String, String> phoneMap = new HashMap<>();

        //添加数据
        phoneMap.put("110", "报警电话");
        phoneMap.put("119", "火警电话");
        phoneMap.put("120", "急救电话");

        //读取
        log.debug(phoneMap.get("119"));
        /**
         * 遍历(5种方式):
         * 推荐使用keySet方式
         */

        //一、使用for-each
        for (Map.Entry<String, String> map : phoneMap.entrySet()
        ) {
            log.debug("第一种方式：" + map.getKey() + "-" + map.getValue());
        }

        //二、for-each迭代keys和values
        for (String key : phoneMap.keySet()
        ) {
            log.debug("第二种方式：key:" + key);
        }
        for (String value : phoneMap.values()
        ) {
            log.debug("第二种方式：value:" + value);
        }

        //三、迭代器方式
        Iterator<Map.Entry<String, String>> entryIterator = phoneMap.entrySet().iterator();
        while (entryIterator.hasNext()) {
            Map.Entry<String, String> entry = entryIterator.next();
            log.debug("第三种方式：键：" + entry.getKey() + "-" + "值:" + entry.getValue());
        }
        //四、键找值遍历
        for (String key : phoneMap.keySet()
        ) {
            String value = phoneMap.get(key);
            log.debug("第四种方式：键：" + key + "-" + "值：" + value);
        }
        //五、lambda表达式
            phoneMap.forEach((key,value)->{
                log.debug("第五种方式：key:" + key + "-值：" + value);
        });
    }
}
